package main
import "fmt"
//数组就是固定大小的  数组的类型就是包含元素的个数
//声明数组时 必须写出元素的个数  即使不能写出  也必须使用...代替
func main(){
	var arr1 [3]int
	arr1[0]=1
	arr1[2]=3
	arr1[1]=2
	fmt.Println(arr1)


	var arr2=[3]string{"cpp","java","python"}
	fmt.Println(arr2)

	var arr3=[...]string{"中国","美国","俄罗斯","新西兰"}
	fmt.Println(arr3)

	var arr4=[...]string{2:"中国",4:"美国"}
	fmt.Println(arr4)
	fmt.Println(arr4[0])
	fmt.Println(arr4[1])
	fmt.Println(arr4[2])
	fmt.Println(arr4[3])
	fmt.Println(arr4[4])
	fmt.Println(len(arr4))

	fmt.Printf("%T\n",arr4)
	fmt.Printf("%T\n",arr3)

	//切片不需要声明元素的个数
	var arr5 []int
	fmt.Printf("type=%T\n",arr5)
	fmt.Println(arr5)

	var arr6=[]string{"张飞","关羽","刘备"}
	fmt.Println(arr6)

	var arr7=[]string{1:"曹操",2:"孙权",3:"诸葛亮"}
	fmt.Printf("%v  type=%T  len=%v\n",arr7,arr7,len(arr7))
	
	var arr8[]string
	//切片slice 没有赋值 默认时nil
	fmt.Println(nil==arr8)
	

	var arr9=[]string{"asa"}
	fmt.Println(nil==arr9)


}